package com.chen.servlet;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.Enumeration;

@WebServlet(value = "/t5")
public class TestHttpServletRequst extends HttpServlet {

    @Override
    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        // service 方法是tomcat调用的 ， 所以 HttpServletRequest（继承HttpServlet 后向下转换的） 和 HttpServletResponse 也是有tomcat创建并且传递的
        // 获取请求行的数据
        System.out.println(req.getMethod()); // 获取请求的方式

        System.out.println(req.getScheme()); // 获取请求的协议
        System.out.println(req.getProtocol()); // 获取请求的协议和协议的版本号

        System.out.println(req.getLocalPort()); // 程序所在服务器的端口号
        System.out.println(req.getServerPort()); // 客户端发送请求的端口号
        System.out.println(req.getRemotePort()); // 客户端发送请求的程序的端口号
        //
        System.out.println(req.getRequestURI()); // 获取请求的定位路径 （资源路径）
        System.out.println(req.getRequestURL()); // 获取请求的完成路径（http://ip:port/资源路径）

        // 获取请求头
        // 根据请求头的中key来获取指定的value
        // 单个
        String cookie = req.getHeader("Cookie");
        System.out.println(cookie);
        // 全部请求头信息
        Enumeration<String> headerNames = req.getHeaderNames();
        while (headerNames.hasMoreElements()) {
            String key = headerNames.nextElement();
            System.out.println(key + " : " + req.getHeader(key));
        }


    }
}
